// 引入mock
let Mock = require('mockjs');
// 获取Mock.random对象
// 参考：https://github.com/nuysoft/Mock/wiki/Mock.Random
let random = Mock.Random;
let Result = {
    code: 200,
    msg: '操作成功！',
    data: null
}
/**
 * Mock.mock( url, post/get , function(options))；
 * url 表示需要拦截的 URL，
 * post/get 需要拦截的 Ajax 请求类型
 *
 * 用于生成响应数据的函数
 */

/**
    获取登录验证码
 */
Mock.mock('/captcha', 'post', ()=>{
    Result.data = {
        randomCode: random.string(32), // 获取一个32位的随机字符串
        captchaImg: random.dataImage('107x40', 'p7n5w') // //生成验证码为11111的base64图片编码
    }
    return Result;
})

/**
    登录接口
 */

// 因为mock 不认识/login?username=xxx, 所以用了正则表达式
Mock.mock(RegExp('/login*'),'post',(config)=>{
    // 这里无法在header添加authorization，直接跳过
    return Result
})

/**
 获取用户信息
 */

Mock.mock('/userInfo','get',(config)=>{
    // 这里无法在header添加authorization，直接跳过
    Result.data = {
        id: random.string(3), // 获取一个3位的随机字符串
        username:'Admin',
        avatar: 'https://tse4-mm.cn.bing.net/th/id/OIP-C.QiENtPtG3CIjC6yr0P-bMQHaFj?w=252&h=188&c=7&r=0&o=5&pid=1.7'
    }
    return Result
})

/**
 登出
 */

Mock.mock('/logout','post',(config)=>{
    return Result
})

/**
 获取用户菜单以及权限接口
 */

Mock.mock('/sys/menuAndAuth','get',(config)=>{
    let menu = [
        {
            id:1,
            name: 'SysManga',
            title: '系统管理',
            icon: 'el-icon-s-operation',
            component: '',
            path: '',
            children: [
                {
                    id:2,
                    name: 'SysUser',
                    title: '用户管理',
                    icon: 'el-icon-s-custom',
                    path: '/sys/user',
                    component: 'sys/User',
                    children: []
                },
                {
                    id:3,
                    name: 'SysRole',
                    title: '角色管理',
                    icon: 'el-icon-rank',
                    path: '/sys/role',
                    component: 'sys/Role',
                    children: []
                },
                {
                    id:4,
                    name: 'SysMenu',
                    title: '菜单管理',
                    icon: 'el-icon-menu',
                    path: '/sys/menu',
                    component: 'sys/Menu',
                    children: []
                }
            ]
        },
        {
            id:5,
            name: 'SysTools',
            title: '系统工具',
            icon: 'el-icon-s-tools',
            path: '',
            component: '',
            children: [
                {
                    id:6,
                    name: 'SysDict',
                    title: '数字字典',
                    icon: 'el-icon-s-order',
                    path: '/sys/dict',
                    component: 'sys/Dict',
                    children: []
                },
            ]
        }
    ]
    let  auth = ['sys:user:list', "sys:user:save", "sys:user:delete"]
    Result.data = {
        menus: menu,
        auths:auth
    }
    return Result
})

